//package com.lwq.imserver.model.proto;
//
//import com.lwq.imserver.model.Transportable;
//import io.netty.buffer.ByteBuf;
//import io.netty.channel.ChannelHandlerContext;
//import io.netty.handler.codec.MessageToByteEncoder;
//import lombok.Data;
//
///**
// * Description:
// * Author: LiuWenQing
// * Datetime: 2022/1/17 17:34
// */
//@Data
//public class AppMessageEncoder extends MessageToByteEncoder<Transportable> {
//
//    @Override
//    protected void encode(final ChannelHandlerContext ctx, final Transportable data, ByteBuf out){
//        byte[] body = data.getBody();
//        byte[] header = createHeader(data.getType(), body.length);
//        out.writeBytes(header);
//        out.writeBytes(body);
//    }
//
//
//    /**
//     * 创建消息头，结构为 TLV格式（Tag,Length,Value）
//     * 第一字节为消息类型
//     * 第二，三字节为消息长度分隔为高低位2个字节
//     */
//    private byte[] createHeader(byte type, int length) {
//        byte[] header = new byte[Constant.DATA_HEADER_LENGTH];
//        header[0] = type;
//        header[1] = (byte) (length & 0xff);
//        header[2] = (byte) ((length >> 8) & 0xff);
//        return header;
//    }
//}
